草庐IT

ruby self.class.class_eval 或 singleton_class.class_eval

全部标签

python - 如何向 _not_ 继承的 python *class* 添加属性?

我需要能够在子类不可见的类(不是类的实例)上设置一个标志。问题是,这可能吗?如果可能,我该怎么做?为了说明,我想要这样的东西:classMaster(SomeOtherClass):__flag__=TrueclassChild(Master):pass...其中hasattr(Master,"__flag__")应该为Master返回True但False为child。这可能吗?如果是这样,如何?我不想在每个child中都将__flag__显式设置为false。我最初的想法是定义__metaclass__,但我没有那么多奢侈,因为Master继承自一些我无法控制的其他类和元类哪些是私有

python - mod_wsgi 错误 - class.__dict__ 在受限模式下不可访问

这开始对我们的生产服务器造成严重影响。我们偶尔会看到这种情况(每周1个请求)。那时我们发现这是因为mod_wsgi在某些配置中做了一些奇怪的事情。由于我们无法追踪错误的原因,我们决定不需要立即关注它。但是今天,在我们的一台生产服务器上,确实发生了所有服务器请求的10%;也就是说,所有服务器请求中有10%因同样的错误而失败:mod_wsgi(pid=1718):TargetWSGIscript'/installation/dir/our-program/prod-dispatch.wsgi'cannotbeloadedasPythonmodule.mod_wsgi(pid=1718):E

python - 您如何仅在对象上下文中执行 python 'eval'?

是否可以做类似的事情c=MyObj()c.eval("func1(42)+func2(24)")在Python中...即在对象“c”的范围内评估func1()和func2()(如果它们是该类定义中的成员函数)?我无法进行简单的解析,因为对于我的应用程序,eval字符串可能变得任意复杂。我想用ast模块做一些魔术可能会成功,但由于ast的文献太少,我不确定去哪里找:importastclassMyTransformer(ast.NodeTransformer):defvisit_Name(self,node):#doageneric_visitsothatchildnodesarepro

python - 抽象类的错误 "__init__ method from base class is not called"

我有classA(object):def__init__(self):raiseNotImplementedError("A")classB(A):def__init__(self):....和pylint说__init__methodfrombaseclass'A'isnotcalled很明显,我不想做super(B,self).__init__()那我该怎么办?(我尝试了abc并得到了Undefinedvariable'abstractmethod'来自pylint,因此这也不是一个选项)。 最佳答案 忽略pylint。它只是一

python - eval() 不在运行时分配变量

我使用eval()将列表分配给var:eval('mylist=[1,2,3]')但是当我运行它时,我得到了一个SyntaxError。它出什么问题了?如果我不能在eval()中进行赋值,我该如何在运行时赋值一个var。 最佳答案 对语句使用exec:>>>exec'lis=[1,2,3]'>>>lis[1,2,3]eval仅适用于表达式,如2*2、4+5等eval和exec如果字符串来自已知来源则没问题,但如果字符串来自未知来源(用户输入)则不要使用它们).阅读:BecarefulwithexecandevalinPython

python - 意外类型 : <class 'pyspark.sql.types.DataTypeSingleton' > when casting to Int on a ApacheSpark Dataframe

尝试将StringType转换为pyspark数据帧上的IntType时出现错误:joint=aggregates.join(df_data_3,aggregates.year==df_data_3.year)joint2=joint.filter(joint.CountyCode==999).filter(joint.CropName=='WOOL')\.select(aggregates.year,'Production')\.withColumn("ProductionTmp",df_data_3.Production.cast(IntegerType))\.drop("Prod

python - 类型错误 : cannot convert the series to <class 'float' >

我有一个数据框(df),如下所示:dateA2001-01-021.00222001-01-031.10332001-01-041.14962001-01-051.10332015-03-30126.37002015-03-31124.43002015-04-01124.25002015-04-02124.8900对于整个时间序列,我尝试将今天的值除以昨天的值并使用以下内容记录结果:df["B"]=math.log(df["A"]/df["A"].shift(1))但是我得到以下错误:TypeError:cannotconverttheseriesto我该如何解决这个问题?我尝试使用以

python - 为什么在解析 JSON 时应该首选 json.loads 而不是 ast.literal_eval?

我有一个字典,它作为字符串存储在数据库字段中。我试图将其解析为字典,但json.loads给我一个错误。为什么json.loads在此失败而ast.literal_eval有效?一个比另一个更可取吗?>>>c.iframe_datau"{u'person':u'Annabelle!',u'csrfmiddlewaretoken':u'wTE9RZGvjCh9RCL00pLloxOYZItQ98JN'}"#jsonfails>>>json.loads(c.iframe_data)Traceback(mostrecentcalllast):ValueError:Expectingprope

Python:将值强制转换为 float 的 eval()?

有没有办法执行类似eval的函数,将其值强制转换为float?我希望能eval('1/3')并让它返回浮点值.333333而不是整数值0。 最佳答案 获取__future__.division的编译器标志,将它和您的代码传递给compile(),然后运行eval()返回代码对象。(mh注释)这具有不更改全局除法操作的额外优势,这可能会产生意想不到的副作用。(尾注)>>>import__future__>>>eval(compile('1/3','','eval',__future__.division.compiler_flag))

python 3.2 插件工厂 : instantiation from class/metaclass

我是从这里的信息中提取的:Metaclassnotbeingcalledinsubclasses我的问题是我无法使用此类注册表创建对象的实例。如果我使用“常规”构造方法,那么它似乎正确地实例化了对象;但是当我尝试使用与注册表关联的类对象时,我收到错误消息,提示我传递的参数数量不正确。(似乎是在调用元类new而不是我的构造函数...??)我不清楚它失败的原因,因为我认为我应该能够使用“可调用”语法从类对象创建一个实例。似乎我正在将元类而不是类本身放入注册表中?但是我没有看到在new调用中访问类本身的简单方法。这是我的代码示例,它无法实例化变量“d”:registry=[]#listofs